import { request } from "../../request/index";
import { rejeneratorRuntime } from "../../utils/asyncWx";
Page({

  /**
   * 页面的初始数据
   */
  data: {
    goodsDetailObj:{}, // 详情商品数据
    isCollect:false // 商品是否被收藏
  },
  // 存储数据用于大图预览
  GoodsInfo:{},
  /**
   * 生命周期函数--监听页面加载
   */
  onShow: function () {
    // 页面栈
    let pages = getCurrentPages();
    // 拿到当前页面
    let currentPage = pages[pages.length -1];
    // 获取商品列表跳转来时携带的参数
    let options = currentPage.options
    // 拿到页面跳转时携带的商品详情id
    const {goods_id} = options;
    // 调用请求方法并把请求参数传递过去
    this.getGoodsDetailData(goods_id);
  },
  // 请求详情数据方法
  async getGoodsDetailData(goods_id){
    // 发起请求得到数据
    const goodsDetailObj = await request({
      url:'goods/detail',
      data:{goods_id}
    })
    // 放入GoodsInfo一份
    this.GoodsInfo = goodsDetailObj;
    // 获取缓存中的商品收藏数据
    let collect = wx.getStorageSync('collect') || [];
    // 判断当前商品是否被收藏
    let isCollect = collect.some(v => v.goods_id === this.GoodsInfo.goods_id);
    // 把得到的数据赋值到商品详情变量中存储
    this.setData({
      goodsDetailObj:{
        // 因为请求过来的东西很多都是用不到的所以data中只存储需要使用的即可
        pics:goodsDetailObj.pics,
        goods_name:goodsDetailObj.goods_name,
        goods_price:goodsDetailObj.goods_price,
        // iPhone手机不支持webp格式的图片
        goods_introduce:goodsDetailObj.goods_introduce.replace(/\.webp/g,'.jpg')
      },
      isCollect
    })
  },
  // 点击收藏/取消商品
  handleCollect(){
    let isCollect = false;
    // 获取缓存商品收藏数组
    let collect = wx.getStorageSync('collect') || [];
    // 判断该商品是否被收藏过
    let index = collect.findIndex(v => v.goods_id === this.GoodsInfo.goods_id);
    // 不等于-1则表示已经收藏过商品了则取消收藏
    if(index !== -1) {
      wx.showToast({
        title: '已取消收藏~',
      });
      // 删除当前已存在商品
      collect.splice(index,1);
      // 取消选中
      isCollect = false;
    } else{
      // 提示
      wx.showToast({
        title: '收藏商品成功',
      })
      // 不存在则追加进去
      collect.push(this.GoodsInfo);
      // 选中
      isCollect = true;
    }
    // 把收藏数组存入到缓存中
    wx.setStorageSync('collect', collect);
    // 重新放入data中
    this.setData({
      isCollect
    });
  },
  // 点击预览大图
  handlePrevewImage(e){
    const current = e.currentTarget.dataset.url;
    const urls = this.GoodsInfo.pics.map(v => v.pics_mid)
    // 微信内置查看大图api
    wx.previewImage({
      urls,
      current,
    })
  },
  // 加入购物车
  addCart(e){
    // 获取缓存中购物车数据
    let cart = wx.getStorageSync('cart') || [];
    // 判断当前要加入购物车商品是否已经在购物车中存在
    let index = cart.findIndex(v => v.goods_id === this.GoodsInfo.goods_id);
    // 拿到索引后判断是否存在
    if(index === -1){
      // 追加商品数量字段
      this.GoodsInfo.num = 1;
      // 追加选中状态
      this.GoodsInfo.checked = true;
      // 添加进去备用
      cart.push(this.GoodsInfo)
    }else cart[index].num++;
    // 把购物车数据放到缓存中
    wx.setStorageSync('cart', cart);
    // 弹窗提示添加成功
    wx.showToast({
      title: '亲，人家在购物车等你哦~',
      icon:'success',
      mask:true
    })
  }
})